As electronic commerce and the international marketplace have continued to expand, international customers of software vendors demand products in their own language, and increasingly, at the same time as the English release. In addition, many large domestic companies have customers distributed throughout the globe, speaking many different languages and operating via a wide variety of infrastructures, local conditions and customs. In order to effectively and efficiently communicate with these customers, multiple language e-commerce solutions are increasingly relied upon to direct and distribute communications between existing or potential customers, and the companies with which they seek to conduct business.
Software development typically proceeds via the writing, testing, and shipment of a single language base version of the product, such as English. After shipment of the English language version of the product, the process of internationalizing and localizing the base product to produce one or more additional language versions of the product is then initiated. This development method ensures that a relatively stable base version of the code is available for the internationalization and localization processes. However, a number of disadvantages are also inherent in such a development method, for example, the sale and/or utilization of the additional language versions of the software is delayed, and obstacles are created in terms of future upgrades for the software via periodic maintenance releases.
Because defects (“bugs”) in the base code are invariably discovered and subsequently repaired during the internationalization and localization processes, the resulting various language versions of the product produced via a traditional software development method ultimately differ from the originally released English language version. These differences become increasingly significant as the software developer seeks to prepare and distribute periodic maintenance releases of the product to upgrade its customer's software and to correct deficiencies often discovered through the customer's use of the product.
The preparation and incorporation of periodic maintenance releases of software represents a substantial commitment of resources for a software developer, and is an important feature in the marketing and sale of expensive software applications to end users. The challenge to the software developer when seeking to upgrade a customer application from one version to the next, or to incorporate a maintenance release, is the status of the current software. Where multiple customers have a variety of versions of the same software, the time and costs associated with the preparation and delivery of a maintenance release are significantly increased because the base from which changes are to be implemented is not uniform.
In addition, customers of the English language version of the product also typically discover bugs as they implement use of the software. As these bugs are corrected by the software developer during the lag time associated with the internationalization and localization processes to produce the multi-language versions, the fixes are typically incorporated into the subsequent language versions, compounding the number and complexity of the changes which must be implemented in order to fix bugs discovered during internationalization and localization, thereby creating the potential for further delay in the delivery of the multi-language versions of the software.